package koby99;

public class J09_While {

	// 반복문 loop
	// 가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
	// 코드를 복사해서 반복을 해도 해결되지 않는 문제발생
	// 반복횟수가 5번이면 코드 줄수도 5줄 작성
	// 코드내 내용이 수정되면 그 사본도 모두 수정해야 함
	
	// 이것에 대한 현명한 방법은
	// 반복문 안에 코드를 넣는 것
	// 즉, 반복할 코드를 한줄만 작성
	// 컴파일러에게 이 코드를 몇번이고 
	// 반복실행하라고 지시할 수 있음
	
	// 반복문의 종류
	// While, do-while, for
	
	// while
	// while( 조건식 ) {
	// 문장;
	// }
	// 조건식의 결과가 참이면
	// 블록 안의 문자가 실행되고
	// 다시, 조건식을 검사 
	// 따라서, 반복 실행을 중단하려면
	// 조건식의 결과가 거짓되도록 만들거나
	// break 문을 사용하면 됨
	
	// 반복문의 처리 과정을 단계별로 파악하려면
	// 통합개발환경의 디버깅 기능을 이용하면 됨
	
	// 코드를 확인할때 쓰는 bug 기능은
	// 더블클릭으로 원하는 값이 출력되는 장소를 지정하고
	// 벌레를 누르고 f6으로 그 값이 진행되는 상황을 지켜볼 수 있다.
	
	// break, continue
	// break문은 while, do-while, for문의 반복실행을
	// 중단 하기위해 사용 
	// break문을 아마대나 사용하면 컴파일 오류 발생
	// continue문은 while, do-while, for문의
	// 현재 반복을 중단하고 다음 반복의 시작으로
	// 제어를 넘김 [ 반복의 일부분에 중단시키는 개념 ]
	
	public static void main(String[] args) {
		// 반복 처리문을 사용하지 않았을 때
		System.out.println( "으앜 ㅋ" );
		System.out.println( "으앜 ㅋ" );
		System.out.println( "으앜 ㅋ" );
		System.out.println( "으앜 ㅋ" );
		System.out.println( "으앜 ㅋ" );
	
		// 문제 1 : 반복문을 사용하지 ㅇ낳고
		//            '시간은 금이라고, 친구!!' 라는 문장을
		//            5번 반복 출력
		System.out.println("시간은 금이라고, 친구!!");
		System.out.println("시간은 금이라고, 친구!!");
		System.out.println("시간은 금이라고, 친구!!");
		System.out.println("시간은 금이라고, 친구!!");
		System.out.println("시간은 금이라고, 친구!!");
		
		// 반복문을 이용하면 다음과 같음
		int count = 0;
		while ( count <= 5 ) {
			System.out.println("시간은 금이라고, 친구!!");
			count = count + 1;
		}
		
		// 문제 2 : 반복문을 사용하지 않고 
		//             1 ~ 10 까지 출력하는 프로그램
		
		System.out.println( 1 );
		System.out.println( 2 );
		System.out.println( 3 );
		System.out.println( 4 );
		System.out.println( 5 );
		System.out.println( 6 );
		System.out.println( 7 );
		System.out.println( 8 );
		System.out.println( 9 );
		System.out.println( 10 );
		
		int sut = 0;
		while ( sut++ < 10 ) {
			System.out.println( sut ); 
		}	// ++sut , count = count + 1  을 선생님은 하넹 
		
		// 문제 3 : 반복문을 이용해서
		// 19단의 19단을 출력해 봄
		// 19 x 1 = 19
		// 19 x 2 = 38
		// ... ... 
		// 19 x 19 = 361
		
		int i = 1;
		int juchu = 19;
		int gab2 = 0;
		while ( i <= 19 ) {
			System.out.println("19 x " + i + " = " + gab2);
			i++;
		}
		count = 1;
		while ( count <= 19 ) {
			System.out.println("19 x " +count + " = " +  19 * count );
			++count;
		}
		
		// 문제 4 : 반복문과 break를 이용해서
		// 1 ~ 10 까지 출력하는 프로그램
		
		// break 를 사용하지 않음
		count = 1;
		while ( count <=10 ) {
			System.out.println( count );
			count++;
		}
		// break 를 사용함
		count = 1;
		while ( true ) {
			if ( count > 10 ) break;
			System.out.println( count );
			count++;
		}
			
		// 문제 5 : 반복문과 contine를 이용해서
		// 1 ~ 10 까지 출력하는 프로그램
		// 단, 5는 출력하지 않음
		
		count =1;
		while ( count <= 10 ) {
			if  (count != 5 ) 
			 System.out.println( count );
			++count;
		} // continue 를 사용하지 않았을 때
		
		count =1;
		while ( count <= 10 ) {
			if  (count == 5 ) {++count; continue;}
			 System.out.println( count );
			++count;
		} //continue 를 사용 했을때.
		
		// 문제 6 : 1 ~ 100 사이에
		// 짝수만 출력하는 프로그램
		
		count = 1;
		while (count <= 100 ) {
			if (count % 2 == 0) {++count; continue;}
			System.out.println( count );
			count++;
		}

		
		// 문제 7 : 1 ~ 100 사이에
		// 홀수만 출력하는 프로그램
		
		count = 1;
		while (count <= 100 ) {
			if (count % 2 > 0) {++count; continue;}
			System.out.println( count );
			count++;
		}
		
		
	}

}
